package com.pay.payment.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 支付流水
 * </p>
 *
 * @author lengxingzi
 * @since 2021-12-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("r_pay")
public class Pay implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 商户id
     */
    private Integer cstId;

    private Integer productId;

    /**
     * APP ID
     */
    private Integer appId;

    private Integer parentId;

    /**
     * 支付类型
     */
    private String payType;

    /**
     * 支付方式
     */
    private String payMode;

    /**
     * 支付通道code
     */
    private String channelCode;

    /**
     * 订单ID
     */
    private String orderId;

    /**
     * 支付流水号
     */
    private String seqNo;

    /**
     * 通道流水号
     */
    private String channelSeqNo;

    /**
     * 用户姓名
     */
    private String userName;

    /**
     * 用户手机号
     */
    private String mobile;

    private String subject;

    /**
     * 用户支付账户
     */
    private String payerVa;

    /**
     * 卡id
     */
    private String referenceId;

    /**
     * 银行卡号
     */
    private String bankCardNo;

    /**
     * 总支付金额
     */
    private BigDecimal amount;

    /**
     * 通道费
     */
    private BigDecimal channelFee;

    /**
     * 支付通道费
     */
    private BigDecimal payChannelFee;

    /**
     * 支付时间
     */
    private LocalDateTime applyRepayTime;

    /**
     * 实际支付时间
     */
    private LocalDateTime finishedRepayTime;

    /**
     * 退货时间
     */
    private LocalDateTime refundTime;

    /**
     * 支付状态(0= 申请成功 1=支付成功 2=支付中  3=支付失败 4=退货中 5=退货失败 6退货完成 7申请失败)
     */
    private Integer status;

    @TableField(exist = false)
    private String statusDesc;

    /**
     * 支付失败原因
     */
    private String reason;

    /**
     * 来源(app_package)
     */
    private String source;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;


}
